<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 箭头函数：对之前普通函数的一种简化，写法更简洁

    // 有名函数
    // function fn () {
    //   // some code...
    //   // return 结果
    // }

    // // 函数表达式
    // const fn = function () {

    // }

    // const result = fn()

    // 1. 语法
    // const fn = () => {

    // }
    // const add = (x, y) => {
    //   return x + y
    // }
    // const result = add(1, 1)
    // console.log(result)

    // 2. 特性
    // 2.1 当参数只有一个时, 可以省略小括号
    // const log = arg => {
    //   console.log(arg)
    // }
    // log(666)
    // log('箭头函数')

    // 2.2 当函数体只有一句话时，可以省略大括号，此时箭头函数自带 return 功能
    // const add = (x, y) => x + y
    // console.log(add(1, 2))

    // 2.3 当直接返回一个对象时, 为了简写，需要给对象加一对小括号
    // const state = () => {
    //   return {
    //     token: 'xxx',
    //     userInfo: {
    //       name: 'admin',
    //       id: 1
    //     }
    //   }
    // }

    // const state = () => ({
    //   token: 'xxx',
    //   userInfo: {
    //     name: 'admin',
    //     id: 1
    //   }
    // })
    // console.log(state())

    // 3. 应用
    // 既可以用于函数的声明，也可以多用于回调函数传参

    // setTimeout(function () {
    //   console.log(666)
    // }, 2000)

    setTimeout(() => {
      console.log(666)
    }, 2000)
  </script>
</body>

</html>